function add(a, b) {
    return a + b
}

// var addOne = add.bind(null, 1)
// addOne(2)

var addOne = partial(add, 1)
addOne(2) // 3

function partial(fn) {
    var args = [].slice.call(arguments, 1) // 获取传进的参数
    return function() {
        var newArgs = args.concat([].slice.call(arguments)) // [1, 2]，
       return fn.apply(this, newArgs)
    }
}